Add dbname option to cetus and gpspilot. From Ron Parker.
authorrobertl <robertl@f51c46e8-681c-474f-0cfe-069cfd0219fb>
Tue, 4 Mar 2003 17:12:19 +0000 (17:12 +0000)
committerrobertl <robertl@f51c46e8-681c-474f-0cfe-069cfd0219fb>
Tue, 4 Mar 2003 17:12:19 +0000 (17:12 +0000)
gpsbabel/cetus.c
gpsbabel/gpspilot.c

index e5ddd603fe4ecac80ba6997f77ccbe46904af6e3..713307e6334b76bf5eb2df5e3d805658e1f59447 100644 (file)
@@ -78,6 +78,14 @@ static const char *out_fname;
 struct pdb *opdb;
 struct pdb_record *opdb_rec;
 
+static char *dbname = NULL;
+
+static
+arglist_t cetus_args[] = {
+       {"dbname", &dbname, "Database name"},
+       {0, 0, 0}
+};
+
 static void
 rd_init(const char *fname, const char *args)
 {
@@ -91,6 +99,10 @@ static void
 rd_deinit(void)
 {
        fclose(file_in);
+       if ( dbname ) {
+           xfree(dbname);
+           dbname = NULL;
+       }
 }
 
 static void
@@ -107,6 +119,10 @@ static void
 wr_deinit(void)
 {
        fclose(file_out);
+       if ( dbname ) {
+           xfree(dbname);
+           dbname = NULL;
+       }
 }
 
 static void
@@ -297,7 +313,12 @@ data_write(void)
                fatal (MYNAME ": new_pdb failed\n");
        }
 
-       strncpy(opdb->name, out_fname, PDB_DBNAMELEN);
+       if ( dbname ) {
+           strncpy( opdb->name, dbname, PDB_DBNAMELEN );
+       }
+       else {
+           strncpy(opdb->name, out_fname, PDB_DBNAMELEN);
+       }
        opdb->name[PDB_DBNAMELEN-1] = 0;
        opdb->attributes = PDB_ATTR_BACKUP;
        opdb->ctime = opdb->mtime = time(NULL) + 2082844800U;
@@ -337,4 +358,5 @@ ff_vecs_t cetus_vecs = {
        wr_deinit,
        data_read,
        data_write,
+       cetus_args
 };
index 9909ba82b399979bc6573d018ad83c9eaee3295e..14b46807915c3a3018da3d63ddc744d94eb89436 100644 (file)
@@ -39,6 +39,13 @@ static FILE *file_out;
 static const char *out_fname;
 struct pdb *opdb;
 struct pdb_record *opdb_rec;
+static char *dbname = NULL;
+
+static
+arglist_t gpspilot_args[] = {
+        {"dbname", &dbname, "Database name"},
+        {0, 0, 0}
+};
 
 static void
 rd_init(const char *fname, const char *args)
@@ -53,6 +60,10 @@ static void
 rd_deinit(void)
 {
        fclose(file_in);
+       if ( dbname ) {
+           xfree(dbname);
+           dbname = NULL;
+       }
 }
 
 static void
@@ -69,6 +80,10 @@ static void
 wr_deinit(void)
 {
        fclose(file_out);
+       if ( dbname ) {
+           xfree(dbname);
+           dbname = NULL;
+       }
 }
 
 static void
@@ -184,7 +199,12 @@ data_write(void)
                fatal (MYNAME ": new_pdb failed\n");
        }
 
-       strncpy(opdb->name, out_fname, PDB_DBNAMELEN);
+       if ( dbname ) {
+           strncpy(opdb->name, dbname, PDB_DBNAMELEN);
+       }
+       else {
+           strncpy(opdb->name, out_fname, PDB_DBNAMELEN);
+       }
        opdb->name[PDB_DBNAMELEN-1] = 0;
        opdb->attributes = PDB_ATTR_BACKUP;
        opdb->ctime = opdb->mtime = time(NULL) + 2082844800U;
@@ -205,4 +225,5 @@ ff_vecs_t gpspilot_vecs = {
        wr_deinit,
        data_read,
        data_write,
+       gpspilot_args
 };